home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 23 / AACD 23.iso / AACD / Programming / tek / kn / elate / exec / timedwaitevent.c < prev    next >
C/C++ Source or Header  |  2001-05-12  |  1KB  |  42 lines

  1.  
  2. #include "tek/kn/elate/exec.h"
  3.  
  4. /* 
  5. **    TEKlib
  6. **    (C) 2001 TEK neoscientists
  7. **    all rights reserved.
  8. **
  9. **    TBOOL occured = kn_timedwaitevent(TKNOB *event, TKNOB *timer, TTIME *time)
  10. **
  11. **    wait for kernel event with timeout.
  12. **
  13. */
  14.  
  15. TBOOL kn_timedwaitevent(TKNOB *event, TKNOB *timer, TTIME *time)
  16. {
  17.     if (time)
  18.     {
  19.         long t = ((long) time->sec) * 1000000000 + ((long) time->usec) * 1000;
  20.         if (sizeof(TKNOB) >= sizeof(ELATE_EVF))
  21.         {
  22.             return (kn_evf_timedwait((ELATE_EVF *) event, 1, EVFF_AND | EVFF_CLR, t) != 0);
  23.         }
  24.         else
  25.         {
  26.             return (kn_evf_timedwait(*((ELATE_EVF **) event), 1, EVFF_AND | EVFF_CLR, t) != 0);
  27.         }
  28.     }
  29.     else
  30.     {
  31.         if (sizeof(TKNOB) >= sizeof(ELATE_EVF))
  32.         {
  33.             return (kn_evf_timedwait((ELATE_EVF *) event, 1, EVFF_AND | EVFF_CLR, 1) != 0);
  34.             /*return (kn_evf_trywait((ELATE_EVF *) event, 1, EVFF_AND | EVFF_CLR) != 0);*/
  35.         }
  36.         else
  37.         {
  38.             return (kn_evf_timedwait(*((ELATE_EVF **) event), 1, EVFF_AND | EVFF_CLR, 1) != 0);
  39.             /*return (kn_evf_trywait(*((ELATE_EVF **) event), 1, EVFF_AND | EVFF_CLR) != 0);*/
  40.         }
  41.     }
  42. }